package com.itany.boot.config;

import com.itany.boot.interceptor.LogInterceptor;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
public class MyConfig implements WebMvcConfigurer {

    /**
     * 配置直接访问视图
     * @param registry
     */
    @Override
    public void addViewControllers(ViewControllerRegistry registry) {
        // 配置某一个视图的访问命令
        // addViewController(url):用于指定访问命令
        // setViewName(view):用于指定该命令所访问的视图是谁,视图同样需要经过viewResolver处理
        registry.addViewController("/showLogin").setViewName("login");
        // 可以无数个命令,没调用一次方法表示配置一个访问命令
        registry.addViewController("/showMain").setViewName("main");
    }

    /**
     * 配置拦截器
     * @param registry
     */
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        // 拦截器是谁
        registry.addInterceptor(new LogInterceptor())
                // 拦截谁
                // 哪些请求需要进入到拦截器进行处理
                .addPathPatterns("/users/**")
                // 不拦截谁
                // 进入拦截器的所有请求中有哪些请求不需要拦截器处理
                // 其参数可以是可变长字符串,也可以是集合
                // 且方法可以无限调用
                .excludePathPatterns("/users/add","/users/delete")
                .excludePathPatterns("/users/modify");
    }
}
